﻿
namespace AmorCanino.Common.Logger
{
    public enum LogDetails
    {
        Information = 0,
        Verbose
    }

    public enum LogLevels
    { 
        Information,
        Warning,
        Error
    }

    public interface ILogger
    {
        void WriteLog(LogEntry logEntry);

        /// <summary>
        /// 
        /// </summary>
        /// <param name="message"></param>
        /// <param name="logLevel"></param>
        void WriteLog(LogEntry logEntry, LogLevels logLevel);
        
        /// <summary>
        /// 
        /// </summary>
        /// <param name="message"></param>
        /// <param name="logLevel"></param>
        /// <param name="logDetail"></param>
        void WriteLog(LogEntry logEntry, LogLevels logLevel, LogDetails logDetail);

        /// <summary>
        /// 
        /// </summary>
        LogLevels LogLevel { get; set; }

        /// <summary>
        /// 
        /// </summary>
        LogDetails LogDetail { get; set; }
    }
}
